Digital video compressed with block-based compression techniques exhibits blocking artifacts that are visually disturbing. The artifacts are particularly noticeable where the compression is done without normative deblocking filters, such as with the MPEG-2, MPEG-4 Part 2, Divx and other codecs. Newer video codecs, such as H.264 and VC-1, address the blocking artifacts by introducing in-loop deblocking filters. Post-loop (i.e., post-processing, out-of-the-loop) deblocking filters are also used in some conventional applications as a separate post-process after the decoder.
The in-loop deblocking of all frames during decoding may only be applied to reduce blockiness for codecs in which the in-loop deblocking is normatively applied during encoding. Otherwise, decoding non-deblocked video with an in-loop deblocking filter introduces an unacceptable amount of drift in the decoded video. For example, if all MPEG-2 decoded pictures were to be reconstructed using deblocked reference pictures, then drift error would accumulate until the decoder receives a next refresh picture (i.e., an I-picture). In many cases, the drift error can be very large, and therefore degrade the video quality to an unacceptable extent.
Conventional post-processing deblocking has the disadvantage that the blockiest frames (which are typically B-frames in MPEG-2) are reconstructed from reference frames that are also blocky. As a result, a great deal of blockiness can be present in the interior of such pictures as introduced to the interior of the blocks through motion compensated prediction from the non-deblocked reference frames. The interior blockiness further degrades visual quality. In all conventional techniques for both in-loop deblocked and post-processed/deblocked video decoding, only a single version of each reference picture is generated and maintained for the decoding of future pictures.